package com.sisbibvir.unmsm.entidades;

import java.io.Serializable;
import javax.persistence.*;
import java.util.List;


/**
 * The persistent class for the usuario database table.
 * 
 */
@Entity
public class Usuario implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	private String id;

	private String password;

	//bi-directional many-to-many association to Alumno
	@ManyToMany
	@JoinTable(
		name="alumnousuario"
		, joinColumns={
			@JoinColumn(name="Usuario_id")
			}
		, inverseJoinColumns={
			@JoinColumn(name="alumno_id")
			}
		)
	private List<Alumno> alumnos;

	//bi-directional many-to-one association to Entregable
	@OneToMany(mappedBy="usuario")
	private List<Entregable> entregables;

	//bi-directional many-to-one association to Post
	@OneToMany(mappedBy="usuario")
	private List<Post> posts;

	//bi-directional many-to-many association to Profesor
	@ManyToMany
	@JoinTable(
		name="profesorusuario"
		, joinColumns={
			@JoinColumn(name="Usuario_id")
			}
		, inverseJoinColumns={
			@JoinColumn(name="profesor_id")
			}
		)
	private List<Profesor> profesors;

	//bi-directional many-to-one association to TipoUsuario
	@ManyToOne
	@JoinColumn(name="Tipo_Usuario_id")
	private TipoUsuario tipoUsuario;

	//bi-directional many-to-many association to Propuesta
	@ManyToMany(mappedBy="usuarios")
	private List<Propuesta> propuestas;

	public Usuario() {
	}

	public String getId() {
		return this.id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public String getPassword() {
		return this.password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	public List<Alumno> getAlumnos() {
		return this.alumnos;
	}

	public void setAlumnos(List<Alumno> alumnos) {
		this.alumnos = alumnos;
	}

	public List<Entregable> getEntregables() {
		return this.entregables;
	}

	public void setEntregables(List<Entregable> entregables) {
		this.entregables = entregables;
	}

	public List<Post> getPosts() {
		return this.posts;
	}

	public void setPosts(List<Post> posts) {
		this.posts = posts;
	}

	public List<Profesor> getProfesors() {
		return this.profesors;
	}

	public void setProfesors(List<Profesor> profesors) {
		this.profesors = profesors;
	}

	public TipoUsuario getTipoUsuario() {
		return this.tipoUsuario;
	}

	public void setTipoUsuario(TipoUsuario tipoUsuario) {
		this.tipoUsuario = tipoUsuario;
	}

	public List<Propuesta> getPropuestas() {
		return this.propuestas;
	}

	public void setPropuestas(List<Propuesta> propuestas) {
		this.propuestas = propuestas;
	}

}